/** <!--------------------------------------------------------------------------------------------->
 * @file RevGraphApplication.h
 *
 * GSvn - A Graphical Client for SVN
 * Copyright (C) 2012  Karl Krach, gsvn@bluespirit.la
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 <!---------------------------------------------------------------------------------------------> */

#ifndef REVGRAPHAPPLICATION_H
#define REVGRAPHAPPLICATION_H

// -- includes --
#include <QApplication>

// --- forward declarations ---
// --- namespaces ---
// --- defines ---


/** <!--------------------------------------------------------------------------------------------->
 * Application object
 *
 * @author	Karl Krach, <gsvn@bluespirit.la>
 * @since	2012-04-13
 <!---------------------------------------------------------------------------------------------> */
class RevGraphApplication : public QApplication
{

	/* Con-/Destructors */
public:

	/** <!----------------------------------------------------------------------------------------->
	 * Creates the RevGraphApplication object
	 *
	 * @param iArgc (in) number of parameters
	 * @param aArgv (in) parameter list
	 <!-----------------------------------------------------------------------------------------> */
	RevGraphApplication( int& argc, char* argv[] );

	/** <!----------------------------------------------------------------------------------------->
	 * Deletes the RevGraphApplication object
	 <!-----------------------------------------------------------------------------------------> */
	virtual ~RevGraphApplication();

	/* Override QApplication */
public:

	/** <!----------------------------------------------------------------------------------------->
	 * Sends event to receiver: receiver->event(event). Returns the value that is returned from the
	 * receiver's event handler. Note that this function is called for all events sent to any object
	 * in any thread.
	 *
	 * @param pReceiver (in) receiver of event
	 * @param pEvent    (in) event to sent to receiver
	 <!-----------------------------------------------------------------------------------------> */
	bool notify( QObject* pReceiver, QEvent* pEvent );

};	// END class RevGraphApplication

#endif // REVGRAPHAPPLICATION_H
